home *** CD-ROM | disk | FTP | other *** search
/ ETO Development Tools 4 / ETO Development Tools 4.iso / Tools - Objects / MacApp / Read Me (MacApp & MPW 3.2) next >
Text File  |  1991-05-20  |  2KB  |  74 lines

  1. ••• News Flash from MacApp.Test •••
  2.  
  3. VERY IMPORTANT!!
  4.  
  5. MacApp versions 3.0a2 or earlier (including MacApp 2.0.1 and prior) have a bug when compiled with MPW 3.2.  Due to some re-segmentation in the MPW Libraries, if you use a version of MacApp that has been compiled with MPW 3.2 you may notice some serious heap fragmentation in your MacApp applications.  We noticed this bug when calling SetHandleSize (it promptly failed while attempting to grow the handle).  The primary solution to the problem is to use MPW 3.1 when compiling MacApp version 2.0.1 or earlier.
  6.  
  7. If you REALLY need or want to use MPW 3.2 (for instance, if you're using MacApp 3.0a2), you must make the following modifications to your Basic Definitions (this workaround has not been thoroughly tested so... USE AT YOUR OWN RISK!):
  8.  
  9.  SegmentMappings = ∂
  10.  #---- insert here
  11.    -sn PASLIB=Main ∂
  12.    -sn STDCLIB=Main ∂
  13.  #---- end of insertion
  14.  
  15. Modify the following declaration in your MacApp.r (in 3.0 this declaration will be found in Memory.r)
  16.  
  17. resource 'seg!' (kBaseMacApp,
  18. #if qNames
  19.    "BaseMacApp",
  20. #endif
  21.    purgeable) {
  22.    {   "Main";
  23.    "MAMain";
  24.    "GMain";
  25.    "GRes";
  26.    "GRes2";
  27.    "ARes";
  28.    "BBRes";
  29.    "BBRes2";
  30.    "%_MethTables";
  31.    "GError";
  32.  #---- insert here
  33.    "INTENV";
  34.    "SADEV";
  35.    "INTENV";
  36.    "STDIO";
  37.    "PASLIB";
  38.    "STDIO";
  39.    "STDCLIB";
  40.  #---- end of insertion
  41.  
  42. resource 'res!' (kBaseMacApp,
  43. #if qNames
  44.    "BaseMacApp",
  45. #endif
  46.    purgeable) {
  47.    {   "Main";
  48.    "MAMain";
  49.    "GMain";
  50.    "GRes";
  51.    "GRes2";
  52.    "ARes";
  53.    "BBRes";
  54.    "BBRes2";
  55.    "%_MethTables";
  56.    "GError";
  57.  #---- insert here
  58.    "INTENV";
  59.    "SADEV";
  60.    "INTENV";
  61.    "STDIO";
  62.    "PASLIB";
  63.    "STDIO";
  64.    "STDCLIB";
  65.  #---- end of insertion
  66.  
  67. One other possible solution would be to mark code resources produced by the libraries that were once in main as locked. Then, these segments would be loaded into memory and placed with the main segment, avoiding fragmentation problems. This can be done by modifying the user variable OtherLinkOptions in the Basic definitions file:
  68.  
  69.  OtherLinkOptions = ∂
  70. -ra PASLIB=resLocked ∂
  71. -ra STDCLIB=resLocked
  72.  
  73. It would still be necessary to modify the SEG! resource as described above. Again, remember these fixes haven't been thoroughly tested, so use them at your own risk.
  74.